package com.bolang.onlycode.demo.FunctionInterface;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class PredicateTest<T> {
    public static boolean checkString(String s, Predicate<String> pre){
        return pre.test(s);
    }

    public static void main(String[] args) {
//        String str="abcde";
//        boolean b = checkString(str, (String s) -> {
//            return s.length() > 5;
//        });
//        System.out.println(b);
        List<Integer> ints = new ArrayList<Integer>();
        for (int i = 0; i < 10; i++) {
            ints.add(i);
        }
        List<Integer> results =filter(ints,(Integer i)->
                i>5
        );
        System.out.println(results.size());


    }
    public static <T>List<T> filter (List<T> list,Predicate<T> p){
        List<T> result = new ArrayList<>();
        for (T e : list) {
            if(p.test(e)){
                list.add(e);
            }
            
        }
        return  result;
    }
}
